import pandas as pd
import json
from tqdm import tqdm  # 进度条
import time

df = pd.DataFrame()


def json_to_pd(data_path, json_field):
    # 加载 JSON 数据
    with open(data_path, 'r', encoding='utf8') as f:
        # 解析一个有效的JSON字符串并将其转换为Python字典
        json_data = json.loads(f.read())
        print('转换后的 JSON => {0}'.format(json_data))  # 转成 JSON 格式，后就可以根据属性获取值了
        print('获取JSON的字段名 => {0}'.format([*json_data[0]]))  # ['name', 'age', 'gender']
    # 设置字段
    df.columns = json_field
    # tqdm 在执行时，有进度条的效果
    for data in tqdm(json_data, desc="Data loop"):
        row_data = data
        # leave=False 选项将在内部循环结束后删除内部循环的进度条。

        # for field in tqdm(json_field, desc="field loop", leave=False):
        #     # 执行一些耗时的操作
        #     time.sleep(0.5)
        #     row_data[field] = ','.join(row_data[field])  # 将每列的数据进行拼接
        #     print(row_data)

        df.append(data, ignore_index=True)
    print(df)
    print(df.head(1))
    print(df.iloc(1))


# 主程序，执行入口
if __name__ == '__main__':
    #try:
        json_path = 'data/demo.json'
        json_field = ['name', 'age', 'gender']
        csv_title = ['姓名', '年龄', '性别']
        json_to_pd(json_path, json_field);
        df.columns = csv_title
        # df.to_csv('data/result.csv')
    # except Exception as ex:
    #     print(f'Error: {str(ex)}')
